package com.uubx.service;

import com.uubx.pojo.Permission;
import com.uubx.pojo.Role;
import com.uubx.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author wuguojun
 * @Date 2020/12/26 18:52
 * @Version 1.0
 */
public interface RoleService {

    //分页查询
    public List<Role> queryAllRole(Integer startIndex, Integer limit);

    //查询角色 总数
    public Long queryAllRoleCount();

    //通过角色名称查询所有
    public Role queryAllRoleByName(String roleName);

    //通过启用状态查询所有角色
    public List<Role> queryRoleByStatus(Integer status);

    //查询所有的角色名称
    public List queryAllRoleName();

    //通过角色id查询该部门下所有员工
    public List<User> queryAllUsersByRoleId(Integer roleId);

    //通过角色id查询该部门下所有员工 返回总数
    public Long queryAllUsersByRoleIdToCount(Integer roleId);

    //查询所有的权限
    public List<Permission> queryAllPermission();

    //查询一个账户拥有的权限
    public List<Permission> queryPermissionByRoleId(Integer role_id);

    //通过角色id删除所有的权限
    public void deleteAllPermissionByRoleId(Integer role_id);

    //添加权限
    public void addRolePermissionByRoleId(@Param("roleId") Integer roleId,@Param("permissionId") Integer permissionId);

    //通过角色名称查询所有的权限
    public List<Permission> queryPermissionByRoleName(String roleName);

    //通过角色id删除角色
    public void deleteRole(Integer id);

    //角色停用
    public void updateRoleByStatus(Role role);

    //添加角色
    public void addRole(Role role);

}
